<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8"/>
        <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
        <meta http-equiv="X-UA-Compatible" content="ie=edge"/>
        <title>Document</title>
        <script>
            /* 
                 3.将字符串按照单词进行逆序，空格作为划分单词的唯一条件
        传入:”Welome to Beijing”改为 “Beijing to Welcome”
            */

            function reverseStr(str){
                var arr = str.split(" ");
                arr.reverse();
                return arr.join(" ");
            }

            // alert(reverseStr("Welome to Beijing"));


            /* 
                 4.对称数组
        传入一个数组，起元素类型与个数皆未知，返回新数组，由原数组的元素正序反序拼接而成。
        传入
            [“One”, “Two”,”Three”] 
        返回
            [“One”, “Two”, “Three”,”Three”,”Two”, “One”]
            */
            function symmetryArr(arr){
                var newArr = arr.concat();
                for(var i = arr.length - 1; i >= 0; i--){
                    newArr.push(arr[i]);
                }
                return newArr;
            }

            // alert(symmetryArr(["one", 'two', 'three']));


            /* 
                 5.已知一个字符串对象中,英语单词用各种非字母字符分割，统计单词个数
            传入:”Yes, she*is%my@love.”;
            返回 5

                【规律】当前面一个字符是字母，后面一个字符是非字母的时候，这就是一个单词
            */
            function countOfWord(str){
                var count = 0;
                for(var i = 0; i < str.length - 1; i++){
                    if(isABC(str[i]) && !isABC(str[i + 1])){
                        count++;
                    }
                }
                return count;
            }

            // alert(countOfWord("Yes, she*is%my@love.Yes, she*is%my@love."));


            
            //判断单个字符是否是字母
            function isABC(charStr){
                if(charStr >= "a" && charStr <= "z" || charStr >= "A" && charStr <= "Z"){
                    return true;
                }else{
                    return false;
                }
            }


            /* 
                6.实现函数，查找子串出现的次数，返回字符串str中出现substring的次数
            传入:”abcabcabc”, “abc”
            返回:3
            */
            function countOfStr(supStr, subStr){
                var arr = supStr.split(subStr);
                return arr.length - 1;
            }

            // alert(countOfStr("abcabcabc", "abc"));


            /* 
                 7.已知千锋邮箱的用户名只能由数字字母下划线组成，域名为@1000phone.com,
          判断一个字符串是否是千锋邮箱，是返回true，不是返回false。
                mail@1000phone.com   是
                $mail@1000phone.com  不是
                mail@1000phone.comp  不是
            */

            alert(isEmail("mail@1000phone.com"));
            alert(isEmail("$mail@1000phone.com"));
            alert(isEmail("mail@1000phone.comp"));

            function isEmail(email){
                //1、查找@符号的位置
                var index = email.indexOf("@");
                if(index == -1){
                    return false;
                }else{
                    var endStr = email.substring(index);
                    if(endStr != "@1000phone.com"){
                        return false;
                    }else{
                        //2、判断用户名是否符合数字字母下划线
                        var username = email.substring(0, index);
                        var isYes = true; //假设都符合
                        for(var i = 0; i < username.length; i++){
                            if(!isDEF(username[i])){
                                isYes = false;
                                break;
                            }
                        }
                        return isYes;
                    }
                }
            }
            // alert(isDEF("."));
            //判断单个字符是否符合数字字母下划线
            function isDEF(charStr){
                if(charStr >= "a" && charStr <= 'z' || charStr >= "A" && charStr <= "Z" || charStr >= "0" && charStr <= "9" || charStr == "_"){
                    return true;
                }else{
                    return false;
                }
            }
        </script>
    </head>
    <body>
        
    </body>
</html>